package pruebasIntegracion;

import juego.Juego;
import junit.framework.TestCase;
import tablero.Posicion;
import tablero.Tablero;
import ataques.MinaDoble;
import ataques.MinaSimple;
import ataques.MinaTriple;
import barco.Direccion;
import barco.Lancha;
import barco.Portaaviones;

public class ExplotarMinaTest extends TestCase {

    // todavia no anda
    public void testLaMinaDobleExplotaAlPasarTresTurnos() {
        Juego juego = new Juego();
        Posicion posicion1 = new Posicion(3, 3);
        Posicion posicion2 = new Posicion(6, 6);
        Lancha lancha = new Lancha(Direccion.ABAJODERECHA);
        Tablero tablero = juego.getTablero();
        tablero.colocarBarcoHorizontal(posicion1, lancha);
        MinaDoble mina = new MinaDoble(posicion2);
        juego.lanzarAtaque(mina);
        juego.pasarTurno();
        juego.pasarTurno();
        juego.pasarTurno();
        juego.pasarTurno();
        assertEquals(lancha.cantPartesRestantes(), 0);

    }

    public void testLaMinaSimpleExplotaAlPasarTresTurnos() {
        Juego juego = new Juego();
        Posicion posicion1 = new Posicion(3, 3);
        Posicion posicion2 = new Posicion(6, 6);
        Lancha lancha = new Lancha(Direccion.ABAJODERECHA);
        Tablero tablero = juego.getTablero();
        tablero.colocarBarcoHorizontal(posicion1, lancha);
        MinaSimple mina = new MinaSimple(posicion2);
        juego.lanzarAtaque(mina);
        juego.pasarTurno();
        juego.pasarTurno();
        juego.pasarTurno();
        juego.pasarTurno();
        assertEquals(lancha.cantPartesRestantes(), 1);

    }

    public void testLaMinaTripleExplotaAlPasarTresTurnos() {
        Juego juego = new Juego();
        Posicion posicion1 = new Posicion(4, 3);
        Posicion posicion2 = new Posicion(1, 1);
        Portaaviones portaaviones = new Portaaviones(Direccion.ARRIBA);
        Tablero tablero = juego.getTablero();
        tablero.colocarBarcoVertical(posicion1, portaaviones);
        MinaTriple mina = new MinaTriple(posicion2);
        juego.lanzarAtaque(mina);
        juego.pasarTurno();
        juego.pasarTurno();
        juego.pasarTurno();
        juego.pasarTurno();
        assertEquals(portaaviones.cantPartesRestantes(), 2);

    }
}
